<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>MiXiM: mobility - modules handling the mobility of the hosts</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>


</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">MiXiM
   &#160;<span id="projectnumber">2.3</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('a00513.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a>  </div>
  <div class="headertitle">
<div class="title">mobility - modules handling the mobility of the hosts</div>  </div>
</div>
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00101.html">IMobility</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract base class defining the public interface that must be provided by all mobility modules.  <a href="a00101.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html">ANSimMobility</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Uses the &lt;position_change&gt; elements of the ANSim tool's trace file. See NED file for more info.  <a href="a00010.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html">BonnMotionFileCache</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html">BonnMotionMobility</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Uses the BonnMotion native file format. See NED file for more info.  <a href="a00038.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html">CircleMobility</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Circle movement model. See NED file for more info.  <a href="a00046.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html">ConstSpeedMobility</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves along a line with constant speed to a randomly chosen target. When the target is reached it selects randomly a new one.  <a href="a00062.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html">LinearMobility</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="a00118.html" title="Given two iterators defining a range of key-value-pairs this class provides linear interpolation of t...">Linear</a> movement model. See NED file for more info.  <a href="a00122.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00123.html">LinearNodeDistributionMobility</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Mobility model which places all hosts at constant distances in a line with an orientation.  <a href="a00123.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00124.html">LineSegmentsMobilityBase</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class for mobility models where movement consists of a sequence of linear movements of constant speed.  <a href="a00124.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00139.html">MassMobility</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Models the mobility of with mass, making random motions. See NED file for more info.  <a href="a00139.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00142.html">MoBANCoordinator</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the coordinator module of the MoBAN mobility model. It should be instantiated in the top level simulation network, once per WBAN. The coordinator module is the main module that provides the group mobility and correlation between nodes in a WBAN. In the initialization phase, it reads three user defined input files which are the postures specification file, a configuration file which includes all required parameter for specific distributions, and the previously logged mobility pattern, if it is requested to use a logged pattern. Note that all WBAN instances may use the same input files if they are exactly in the same situation.  <a href="a00142.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00143.html">MoBANLocal</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the local mobility module of MoBAN. It should be instantiated in each node that belongs to a WBAN. The NED parameter "coordinatorIndex" determines to which WBAN (<a class="el" href="a00142.html" title="This is the coordinator module of the MoBAN mobility model. It should be instantiated in the top leve...">MoBANCoordinator</a>) it belongs. The current implementation uses the Random Walk Mobility Model (RWMM) for individual (local) movement within a sphere around the node, with given speed and sphere radius of the current posture. The reference point of the node in the current posture, the sphere radius, and the speed is given by the corresponding coordinator. RWMM determines the location of the node at any time relative to the given reference point.  <a href="a00143.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00145.html">MobilityBase</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract base class for mobility modules.  <a href="a00145.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html">MovingMobilityBase</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class for moving mobility modules. Periodically emits a signal with the current mobility state.  <a href="a00147.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00178.html">Posture</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">to store the specification of a posture on the MoBAN mobility model.  <a href="a00178.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00179.html">PostureTransition</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Class to provide spatial and temporal correlation in the posture selection process of the MoBAN mobility model. This class obtains and stores Markovian transition matrices. There is also the possibility to get a steady state vector. In this case, the closest transition matrix to the default Makov matrix is extracted which satisfies the given steady state vector. The class also receives the defined area types and time domains as well as given space-time domains during the initialization phase. During the simulation run, the class provide a functions to return the corresponding markov matrix for a given time and location. It will be used whenever a new posture is going to be selected.  <a href="a00179.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html">RectangleMobility</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Rectangle movement model. See NED file for more info.  <a href="a00187.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00204.html">StaticGridMobility</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Mobility model which places all hosts at constant distances within the simulation area (resulting in a regular grid).  <a href="a00204.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00205.html">StationaryMobility</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html">TractorMobility</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tractor movement model. See NED file for more info.  <a href="a00216.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00220.html">TurtleMobility</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">LOGO-style movement model, with the script coming from XML. See NED file for more info.  <a href="a00220.html#details">More...</a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>The following diagrams give an overview of the functionality of a mobility-module.</p>
<div class="image">
<img src="Mobility.png" alt="Mobility.png"/>
<div class="caption">
Activity diagram: an overview on how movement-updates in MobilityBase work</div></div>
 <div class="image">
<img src="makeMove.png" alt="makeMove.png"/>
<div class="caption">
Sequence diagram: call-hierarchy when move-message is processed</div></div>
<p> Shows how sub-classing mobility-modules are involved in the movement-calculation for a host. They overwrite the method makeMove() to calculate the next movement-step and after that they have to call fixIfHostGetsOutside() which takes care of border-handling. The implementation of this method at least has to call handleIfOutside() and pass the border-policy to use as well as references to parameters to be updated. The figure below shows some details on how border-handling and the different border-policies work.</p>
<div class="image">
<img src="borderPolicies.png" alt="borderPolicies.png"/>
<div class="caption">
Illustrated border-handling under the different border-policies, multiple border-handling in one movement-step</div></div>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>

    <li class="footer">Generated on Tue Mar 5 2013 21:26:31 for MiXiM by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.5.1 </li>
   </ul>
 </div>


</body>
</html>
